home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 37
/
Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso
/
Aminet
/
dev
/
basic
/
clockita.lha
/
Orologio.text
< prev
next >
Wrap
Text File
|
2000-04-06
|
19KB
|
725 lines
;-> Orologio by Stefano Regattin
;d> 9 ottobre 1998 da Clock
;m> 10,11,16,17,19,24,29 ottobre 1998
;m> 4,6 novembre 1998
;m> 13,14,23 dicembre 1998
;m> 3 gennaio 1999
;m> 9,12 marzo 1999
;m> 25,26 settembre 1999
;m> 1,2,3,5,6,7,8,9,10,11,22,27,28 febbraio 2000
;m> 2,3,4,6,9,10,30,31 marzo 2000
;m> 6 aprile 2000
;-----------------
#HaiCambiatoLeDimensioniDellaFinestra=2
#HaiPremutoUnTastoDelTopo=8
#HaiRilasciatoUnGadget=$40
#HaiChiusoLaFinestra=$200
DEFTYPE .l RastPortFinestra
DEFTYPE .b AltezzaFont,AltezzaFontRegistrata
DEFTYPE .b NumeroToolType,StatoAllarme,ToolTypeScritti
DEFTYPE .w
Statement AggiustaDimensioniFinestraZero{}
SHARED Angolo$
SHARED LunXFinestraZero
SHARED LunXSchermo
SHARED LunYFinestraZero
SHARED PosXFinestraZero
SHARED PosXFinestraZeroAngoloOpposto
SHARED PosYFinestraZero
SHARED PosYFinestraZeroAngoloOpposto
Select Angolo$
Case "TOP-RIGHT"
If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
EndIf
Case "BOTTOM-RIGHT"
If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroAngoloOpposto
PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
EndIf
If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
EndIf
Case "BOTTOM-LEFT"
If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroAngoloOpposto
PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
EndIf
End Select
If LunXFinestraZero>LunXSchermo Then LunXFinestraZero=LunXSchermo
If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo Then PosXFinestraZero=LunXSchermo-LunXFinestraZero
If PosXFinestraZero<0 Then PosXFinestraZero=0
If LunYFinestraZero>WBHeight Then LunYFinestraZero=WBHeight
If PosYFinestraZero+LunYFinestraZero-1>WBHeight Then PosYFinestraZero=WBHeight-LunYFinestraZero
If PosYFinestraZero<AltezzaFontSchermo+3 Then PosYFinestraZero=AltezzaFontSchermo+3
End Statement
Statement ApriFinestraZero{}
SHARED LunXFinestraZero
SHARED LunYFinestraZero
SHARED PosXFinestraZero
SHARED PosYFinestraZero
SHARED RastPortFinestra
Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
WTitle "Orologio","by Stefano Regattin e-mail>StefanoRegattin@lycosmail.com"
RastPortFinestra=RastPort(0)
WindowFont 0
End Statement
Statement LeggiToolType{}
SHARED Angolo$
SHARED AngoloRegistrato$
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED IconaOrologio$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED PosXFinestraZero
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroRegistrata
ToolTypeLetti.l=GetIconObject(IconaOrologio$)
If ToolTypeLetti>0
NuovoFontOrologio$=FindToolValue("FONTNAME")
NuovaAltezzaFont$=FindToolValue("FONTSIZE")
NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
NuovoAngolo$=FindToolValue("ANGLE")
If NuovoFontOrologio$<>""
FontOrologioRegistrato$=NuovoFontOrologio$
FontOrologio$=NuovoFontOrologio$
EndIf
If NuovaAltezzaFont$<>""
AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
AltezzaFont=Val(NuovaAltezzaFont$)
EndIf
If NuovaPosXFinestraZero$<>""
PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
PosXFinestraZero=Val(NuovaPosXFinestraZero$)
EndIf
If NuovaPosYFinestraZero$<>""
PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
PosYFinestraZero=Val(NuovaPosYFinestraZero$)
EndIf
If NuovoAngolo$<>""
Angolo$=NuovoAngolo$
AngoloRegistrato$=NuovoAngolo$
EndIf
FreeIconObject
EndIf
End Statement
Statement ScriviToolType{}
SHARED Angolo$
SHARED AngoloRegistrato$
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED IconaOrologio$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED PosXFinestraZero
SHARED PosXFinestraZeroAngoloOpposto
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroAngoloOpposto
SHARED PosYFinestraZeroRegistrata
SHARED ToolTypeScritti
ToolTypeLetti.l=GetIconObject(IconaOrologio$)
If ToolTypeLetti>0
If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
If FindToolType("FONTNAME")=True
SetToolValue "FONTNAME",FontOrologio$
Else
NewToolType "FONTNAME",FontOrologio$
EndIf
If FindToolType("FONTSIZE")=True
SetToolValue "FONTSIZE",Str$(AltezzaFont)
Else
NewToolType "FONTSIZE",Str$(AltezzaFont)
EndIf
Select Angolo$
Case "TOP-LEFT"
If FindToolType("WINDOWX")=True
SetToolValue "WINDOWX",Str$(PosXFinestraZero)
Else
NewToolType "WINDOWX",Str$(PosXFinestraZero)
EndIf
If FindToolType("WINDOWY")=True
SetToolValue "WINDOWY",Str$(PosYFinestraZero)
Else
NewToolType "WINDOWY",Str$(PosYFinestraZero)
EndIf
Case "TOP-RIGHT"
If FindToolType("WINDOWX")=True
SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
Else
NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
EndIf
If FindToolType("WINDOWY")=True
SetToolValue "WINDOWY",Str$(PosYFinestraZero)
Else
NewToolType "WINDOWY",Str$(PosYFinestraZero)
EndIf
Case "BOTTOM-RIGHT"
If FindToolType("WINDOWX")=True
SetToolValue "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
Else
NewToolType "WINDOWX",Str$(PosXFinestraZeroAngoloOpposto)
EndIf
If FindToolType("WINDOWY")=True
SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
Else
NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
EndIf
Case "BOTTOM-LEFT"
If FindToolType("WINDOWX")=True
SetToolValue "WINDOWX",Str$(PosXFinestraZero)
Else
NewToolType "WINDOWX",Str$(PosXFinestraZero)
EndIf
If FindToolType("WINDOWY")=True
SetToolValue "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
Else
NewToolType "WINDOWY",Str$(PosYFinestraZeroAngoloOpposto)
EndIf
End Select
If FindToolType("ANGLE")=True
SetToolValue "ANGLE",Angolo$
Else
NewToolType "ANGLE",Angolo$
EndIf
ToolTypeScritti=PutIconObject(IconaOrologio$)
If ToolTypeScritti=True
FontOrologioRegistrato$=FontOrologio$
AltezzaFontRegistrata=AltezzaFont
AngoloRegistrato$=Angolo$
Select Angolo$
Case "TOP-LEFT"
PosXFinestraZeroRegistrata=PosXFinestraZero
PosYFinestraZeroRegistrata=PosYFinestraZero
Case "TOP-RIGHT"
PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
PosYFinestraZeroRegistrata=PosYFinestraZero
Case "BOTTOM-RIGHT"
PosXFinestraZeroRegistrata=PosXFinestraZeroAngoloOpposto
PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
Case "BOTTOM-LEFT"
PosXFinestraZeroRegistrata=PosXFinestraZeroAngolo
PosYFinestraZeroRegistrata=PosYFinestraZeroAngoloOpposto
End Select
EndIf
FreeIconObject
EndIf
End Statement
Statement CercaFont{}
SHARED FontOrologio$
SHARED AltezzaFont
NEWTYPE .FontInfo
Nome$
Altezza.w
Stile.b
Segnalatori
PennaUno
PennaDue
ModoDisegno
Pad
End NEWTYPE
*Font.FontInfo=ASLFontRequest(0)
If *Font<>0
FontOrologio$=*Font\Nome
AltezzaFont=*Font\Altezza
EndIf
End Statement
Statement Impostazioni{}
SHARED Angolo$
SHARED AngoloRegistrato$
SHARED OraAllarme$
SHARED OraDiOggi$
SHARED FontOrologio$
SHARED FontOrologioRegistrato$
SHARED AltezzaFont
SHARED AltezzaFontRegistrata
SHARED LunXFinestraZero
SHARED LunYFinestraZero
SHARED LunXSchermo
SHARED PosXFinestraZero
SHARED PosXFinestraZeroAngoloOpposto
SHARED PosXFinestraZeroRegistrata
SHARED PosYFinestraZero
SHARED PosYFinestraZeroAngoloOpposto
SHARED PosYFinestraZeroRegistrata
SHARED StatoAllarme
SHARED ToolTypeScritti
Dim Freccia(5)
BitMap 0,32,16,2
Freccia(0)=0:Freccia(1)=0
Freccia(2)=7:Freccia(3)=0
Freccia(4)=0:Freccia(5)=7
Polyf 3,&Freccia(0),1
GetaShape 0,0,0,8,8
XFlip 0
Blit 0,8,0
GetaShape 0,0,0,8,8
GetaShape 1,8,0,8,8
YFlip 1
Blit 1,16,0
GetaShape 1,8,0,8,8
GetaShape 2,16,0,8,8
XFlip 2
Blit 2,24,0
GetaShape 2,16,0,8,8
GetaShape 3,24,0,8,8
Freccia(0)=0:Freccia(1)=8
Freccia(2)=7:Freccia(3)=8
Freccia(4)=0:Freccia(5)=15
Polyf 3,&Freccia(0),2
GetaShape 4,0,8,8,8
XFlip 4
Blit 4,8,8
GetaShape 4,0,8,8,8
GetaShape 5,8,8,8,8
YFlip 5
Blit 5,16,8
GetaShape 5,8,8,8,8
GetaShape 6,16,8,8,8
XFlip 6
Blit 6,24,8
GetaShape 6,16,8,8,8
GetaShape 7,24,8,8,8
Free BitMap 0
Use IntuiFont 1
StringGadget 0, 1, 1, 0, 0,6,6*8
StringGadget 0, 1,14, 0, 1,25,106
StringGadget 0, 75, 1, 0, 2,4,4*8
StringGadget 0, 9,27, 0, 3,5,5*8
StringGadget 0, 67,27, 0, 4,5,5*8
StringGadget 0, 9,62, 0, 5,5,5*8
StringGadget 0, 67,62, 0, 6,5,5*8
ShapeGadget 0, 94,43,512, 7,0,4
ShapeGadget 0,103,43,512, 8,1,5
ShapeGadget 0,103,51,512, 9,2,6
ShapeGadget 0, 94,51,512,10,3,7
TextGadget 0, 58, 1, 1,11,"A"
TextGadget 0, 1,75, 1,12,"*** Salva ***"
PosXFinestraZero=WindowX-WLeftOff
PosYFinestraZero=WindowY-WTopOff
PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
PosXFinestraUno=WindowX
PosYFinestraUno=WindowY
LunXFinestraUno=124
LunYFinestraUno=WTopOff+93
If PosXFinestraUno+LunXFinestraUno>LunXSchermo Then PosXFinestraUno=LunXSchermo-LunXFinestraUno
If PosYFinestraUno+LunYFinestraUno>WBHeight Then PosYFinestraUno=WBHeight-LunYFinestraUno
Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140E,"",1,2,0
WTitle "Impostazioni","Imposta le variabili dell'orologio"
WindowFont 1
Select Angolo$
Case "TOP-LEFT"
Enable 0,3
Enable 0,4
Disable 0,5
Disable 0,6
Toggle 0,7,On
Redraw 1,7
Case "TOP-RIGHT"
Enable 0,3
Disable 0,4
Disable 0,5
Enable 0,6
Toggle 0,8,On
Redraw 1,8
Case "BOTTOM-RIGHT"
Disable 0,3
Disable 0,4
Enable 0,5
Enable 0,6
Toggle 0,9,On
Redraw 1,9
Case "BOTTOM-LEFT"
Disable 0,3
Enable 0,4
Enable 0,5
Disable 0,6
Toggle 0,10,On
Redraw 1,10
End Select
Redraw 1,3
Redraw 1,4
Redraw 1,5
Redraw 1,6
GadgetBorder 94,42,17,17
WLocate 0,29:Print "X"
WLocate 58,29:Print "Y"
WLocate 1,43:Print"Angolo"
WLocate 42,52:Print"fisso>"
WLocate 0,64:Print "X"
WLocate 58,64:Print "Y"
If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
Repeat
SetString 0,0,OraAllarme$
Redraw 1,0
SetString 0,1,FontOrologio$
Redraw 1,1
SetString 0,2,Str$(AltezzaFont)
Redraw 1,2
SetString 0,3,Str$(PosXFinestraZero)
Redraw 1,3
SetString 0,4,Str$(PosYFinestraZero)
Redraw 1,4
SetString 0,5,Str$(PosXFinestraZeroAngoloOpposto)
Redraw 1,5
SetString 0,6,Str$(PosYFinestraZeroAngoloOpposto)
Redraw 1,6
ValoriCambiati.b=False
If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
Select Angolo$
Case "TOP-LEFT"
If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
Case "TOP-RIGHT"
If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
Case "BOTTOM-RIGHT"
If PosXFinestraZero+(LunXFinestraZero-1)<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
Case "BOTTOM-LEFT"
If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
If PosYFinestraZero+(LunYFinestraZero-1)<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
End Select
If Angolo$<>AngoloRegistrato$ Then ValoriCambiati=True
If ValoriCambiati=True Then Enable 0,12 Else Toggle 0,12,Off:Disable 0,12
Redraw 1,12
EventoFinestraUno.l=WaitEvent
Select EventoFinestraUno
Case #HaiRilasciatoUnGadget
If GadgetHit<7 Then ActivateString 1,GadgetHit
Select GadgetHit
Case 0
OraAllarme$=StringText$(0,0)
Case 1
NuovoFontOrologio$=StringText$(0,1)
If NuovoFontOrologio$="" Then CercaFont{}
If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
If Len(NuovoFontOrologio$)>0
If Exists("FONTS:"+NuovoFontOrologio$)
FontOrologio$=NuovoFontOrologio$
EndIf
EndIf
Case 2
AltezzaFont=Val(StringText$(0,2))
AltezzaFont=Max(AltezzaFont,6)
Case 3
PosXFinestraZero=Val(StringText$(0,3))
Case 4
PosYFinestraZero=Val(StringText$(0,4))
Case 5
PosXFinestraZeroAngoloOpposto=Val(StringText$(0,5))
Case 6
PosYFinestraZeroAngoloOpposto=Val(StringText$(0,6))
Case 7
If GadgetStatus(0,7)=True Then Angolo$="TOP-LEFT"
Case 8
If GadgetStatus(0,8)=True Then Angolo$="TOP-RIGHT"
Case 9
If GadgetStatus(0,9)=True Then Angolo$="BOTTOM-RIGHT"
Case 10
If GadgetStatus(0,10)=True Then Angolo$="BOTTOM-LEFT"
Case 11
StatoAllarme=GadgetStatus(0,11)
Case 12
ScriviToolType{}
If ToolTypeScritti=True
Toggle 0,12,Off
Disable 0,12
Redraw 1,12
Else
Toggle 0,12,On
EndIf
End Select
Select Angolo$
Case "TOP-LEFT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
Enable 0,3
Enable 0,4
Disable 0,5
Disable 0,6
Case "TOP-RIGHT"
PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
Disable 0,3
Enable 0,4
Enable 0,5
Disable 0,6
Case "BOTTOM-RIGHT"
PosXFinestraZero=PosXFinestraZeroAngoloOpposto-(LunXFinestraZero-1)
PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
Disable 0,3
Disable 0,4
Enable 0,5
Enable 0,6
Case "BOTTOM-LEFT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
PosYFinestraZero=PosYFinestraZeroAngoloOpposto-(LunYFinestraZero-1)
Enable 0,3
Disable 0,4
Disable 0,5
Enable 0,6
End Select
End Select
Until EventoFinestraUno=#HaiChiusoLaFinestra
CloseWindow 1
Use Window 0
End Statement
Statement DataDiOggi{}
SHARED Allarme$
SHARED DataDiOggi$
SHARED LunghezzaDataDiOggi
SHARED LunghezzaScrittaAllarme
SHARED RastPortFinestra
Select WeekDay
Case 0
GiornoDellaSettimana$="Dom"
Case 1
GiornoDellaSettimana$="Lun"
Case 2
GiornoDellaSettimana$="Mar"
Case 3
GiornoDellaSettimana$="Mer"
Case 4
GiornoDellaSettimana$="Gio"
Case 5
GiornoDellaSettimana$="Ven"
Case 6
GiornoDellaSettimana$="Sab"
End Select
Giorno$=Str$(Days)
Select Months
Case 1
Mese$="gennaio"
Case 2
Mese$="febbraio"
Case 3
Mese$="marzo"
Case 4
Mese$="aprile"
Case 5
Mese$="maggio"
Case 6
Mese$="giugno"
Case 7
Mese$="luglio"
Case 8
Mese$="agosto"
Case 9
Mese$="settembre"
Case 10
Mese$="ottobre"
Case 11
Mese$="novembre"
Case 12
Mese$="dicembre"
End Select
Anno$=Str$(Years)
DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
End Statement
WBStartup
WbToScreen 0
IndirizzoSchermo.l=Peek.l(Addr Screen(0))
LunXSchermo=Peek.w(IndirizzoSchermo+12)
FontOrologio$="Data70.font"
AltezzaFont=13
AltezzaFontSchermo.b=8
OpenFontPrefs
AltezzaFontSchermo.b=DefaultFontHeight(2)
CloseFontPrefs
IconaOrologio$=ProgPath$+".info"
PosXFinestraZero=0
PosYFinestraZero=AltezzaFontSchermo+3
LunXFinestraZero=70
LunYFinestraZero=30
Angolo$="TOP-LEFT"
LeggiToolType{}
LoadFont 0,FontOrologio$,AltezzaFont
LoadFont 1,"topaz.font",8
Select Angolo$
Case "TOP-RIGHT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero
PosXFinestraZero-(LunXFinestraZero-1)
Case "BOTTOM-RIGHT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero
PosXFinestraZero-(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero
PosYFinestraZero-(LunYFinestraZero-1)
Case "BOTTOM-LEFT"
PosYFinestraZeroAngoloOpposto=PosYFinestraZero
PosYFinestraZero-(LunYFinestraZero-1)
End Select
AggiustaDimensioniFinestraZero{}
ApriFinestraZero{}
DataDiOggi$=Date$(SystemDate)
DataDiOggi{}
LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
LunYFinestraZero=WTopOff+AltezzaFont*2+6
Select Angolo$
Case "TOP-LEFT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
Case "TOP-RIGHT"
PosXFinestraZero=PosXFinestraZeroAngoloOpposto
PosXFinestraZero-(LunXFinestraZero-1)
PosYFinestraZeroAngoloOpposto=PosYFinestraZero+(LunYFinestraZero-1)
Case "BOTTOM-RIGHT"
PosXFinestraZero=PosXFinestraZeroAngoloOpposto
PosXFinestraZero-(LunXFinestraZero-1)
PosYFinestraZero=PosYFinestraZeroAngoloOpposto
PosYFinestraZero-(LunYFinestraZero-1)
Case "BOTTOM-LEFT"
PosXFinestraZeroAngoloOpposto=PosXFinestraZero+(LunXFinestraZero-1)
PosYFinestraZero=PosYFinestraZeroAngoloOpposto
PosYFinestraZero-(LunYFinestraZero-1)
End Select
CloseWindow 0
AggiustaDimensioniFinestraZero{}
ApriFinestraZero{}
RaggioCerchio=AltezzaFont/2
Repeat
EventoFinestraZero.l=Event
If EventoFinestraZero=#HaiCambiatoLeDimensioniDellaFinestra
AltezzaFont=InnerHeight/2
If AltezzaFont<4 Then AltezzaFont=4
LunXFinestraZero=WindowWidth
LunYFinestraZero=WindowHeight
RaggioMassimoCerchio=AltezzaFont/2
LoadFont 0,FontOrologio$,AltezzaFont
WindowFont 0
WCls
EndIf
If EventoFinestraZero=#HaiPremutoUnTastoDelTopo
PrecedenteFontOrologio$=FontOrologio$
PrecedenteAltezzaFont.b=AltezzaFont
Impostazioni{}
Use Window 0
FinestraZeroAggiornata.b=False
If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
LoadFont 0,FontOrologio$,AltezzaFont
WindowFont 0
DataDiOggi{}
LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
LunYFinestraZero=WTopOff+AltezzaFont*2+6
CloseWindow 0
AggiustaDimensioniFinestraZero{}
ApriFinestraZero{}
FinestraZeroAggiornata=True
EndIf
If FinestraZeroAggiornata=False
If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
CloseWindow 0
AggiustaDimensioniFinestraZero{}
ApriFinestraZero{}
EndIf
EndIf
RaggioMassimoCerchio=AltezzaFont/2
RaggioCerchio=RaggioMassimoCerchio
EndIf
DataDiOggi$=Date$(SystemDate)
DataDiOggi{}
XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
WLocate XData,0:Print DataDiOggi$
OraDiOggi$=Str$(Hours/10)
OraDiOggi$+Str$(Hours MOD 10)+":"
OraDiOggi$+Str$(Mins/10)
OraDiOggi$+Str$(Mins MOD 10)+":"
OraDiOggi$+Str$(Secs/10)
OraDiOggi$+Str$(Secs MOD 10)
LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2-1
WLocate XOra,AltezzaFont:Print " ",OraDiOggi$," "
If StatoAllarme=On
If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
XAllarme=InnerWidth-1-AltezzaFont/2
YAllarme=InnerHeight-1-AltezzaFont/2
WCircle XAllarme,YAllarme,RaggioCerchio,1
EndIf
Delay_ 50
If StatoAllarme=On
WCircle XAllarme,YAllarme,RaggioCerchio,0
RaggioCerchio+1
If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
EndIf
Until EventoFinestraZero=#HaiChiusoLaFinestra
End